package sql;

import java.util.HashMap;
import java.util.List;

import dao.Client;
import dao.Dungeon;
import dao.Monster;
import dao.Room;
import dao.UserCharacter;

public interface DB_Interface {

	// ROOMS

	public void createRoom(Room r) throws Exception;
	
	public void createAllRooms(List<Room> roomlist) throws Exception;

	public void updateRoom(Room r) throws Exception;

	public void deleteRoom(Room r) throws Exception;

	public List<Room> getAllRooms(Dungeon myDungeon) throws Exception;

	public Room getRoom(int idroom) throws Exception;
	
	public void clearRoom() throws Exception;

	// MONSTER

	public void createMonster(Monster m) throws Exception;
	
	public void createAllMonsters(List<Monster> monsterlist) throws Exception;

	public void updateMonster(Monster m) throws Exception;

	public void deleteMonster(Monster m) throws Exception;

	public List<Monster> getAllMonsters() throws Exception;

	public Monster getMonster(int idmonster) throws Exception;
	
	public void clearMonster() throws Exception;

	// USERCHARACTER

	public void createUserCharacter(UserCharacter uc) throws Exception;
	
	public void createAllUserCharacters(List<UserCharacter> uclist) throws Exception;

	public void updateUserCharacter(UserCharacter uc) throws Exception;

	public void deleteUserCharacter(UserCharacter uc) throws Exception;

	public List<UserCharacter> getAllUserCharacters() throws Exception;

	public UserCharacter getUserCharacter(String pseudouc) throws Exception;
	
	public void clearUserCharacter() throws Exception;

	// CLIENT

	public void createClient(Client c) throws Exception;
	
	public void createAllClients(List<Client> clientlist) throws Exception;

	public void updateClient(Client c) throws Exception;

	public void deleteClient(Client c) throws Exception;

	public List<Client> getAllClients() throws Exception;

	public Client getClient(String logincli) throws Exception;

	public void clearClient() throws Exception;
	
	// LINKROOM
	
	public void createAllLinks(List<Room> listroom) throws Exception;
	
	public void setAllLinks(HashMap<Integer, Room> hmrooms) throws Exception;
	
	public void clearLinkRooms() throws Exception;
}
